def add_stock_suffix(stock_code: str) -> str:
    """
    为6位股票代码添加交易所后缀（.SZ/.SH/.BJ）
    """
    code_str = str(stock_code).upper()  # 转换为大写

    # 检查是否已经带有后缀
    if code_str.endswith(('.SZ', '.SH', '.BJ')):
        return code_str

    # 如果长度为5位，按港股处理
    if len(code_str) == 5:
        return f"{code_str}.HK"

    code_str = str(stock_code).zfill(6)  # 确保6位长度，不足补零
    prefix2 = code_str[:2]  # 取前两位
    prefix3 = code_str[:3]  # 取前三位

    # 北交所判断 (920新代码 或 43/83/87/88旧代码)[11,12](@ref)
    if prefix3 == "920" or prefix2 in ("43", "83", "87", "88"):
        return f"{code_str}.BJ"

    # 深交所判断 (000/001/002/300开头)[6,9](@ref)
    if prefix3 in ("000", "001", "002", "300") or prefix2 == "20":  # 20开头为深市B股
        return f"{code_str}.SZ"

    # 上交所判断 (600/601/603/605/688开头)[6,10](@ref)
    if prefix3 in ("600", "601", "603", "605", "688") or prefix2 == "90":  # 90开头为沪市B股
        return f"{code_str}.SH"

    # 处理不了，则返回传入的stock_code
    return stock_code
